\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser}{
\section{Zebulon::SICK::Laser Class Reference}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser}\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_1_1_callback}{Callback}
\begin{DoxyCompactList}\small\item\em \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_1_1_callback}{Callback} class used to register for message events. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a3dfc30c8c07c30251772b37c79821f35}{DistanceModes} \{ \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a3dfc30c8c07c30251772b37c79821f35ad45871d048871a91fcd57af2fb149aff}{CM} =  0x00, 
\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a3dfc30c8c07c30251772b37c79821f35ac39043c28c2f4b4a64baf80249a9b720}{MM} =  0x01
 \}
\begin{DoxyCompactList}\small\item\em Possible distance mode settings values that the \hyperlink{namespace_s_i_c_k}{SICK} \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser} can use. \item\end{DoxyCompactList}\item 
enum \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a3f01c225827d657d3d4874b42398a91d}{ScanningAngle} \{ \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a3f01c225827d657d3d4874b42398a91da3b543aeba39c39159d00b6e5489fbe5a}{OneHundred} =  0x6400, 
\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a3f01c225827d657d3d4874b42398a91da6cfc27e67982cd6b3ef6117a07bd09e0}{OneEighty} =  0xB400
 \}
\begin{DoxyCompactList}\small\item\em Possible angle values that the \hyperlink{namespace_s_i_c_k}{SICK} \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser} can scan with. \item\end{DoxyCompactList}\item 
enum \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844}{AngularResolution} \{ \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844a62bcf09ed5b97062b4c06ca79cf5bebd}{One} =  0x6400, 
\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844a0a6ab0f554fd97657a551dc1840d8ad3}{Half} =  0x3200, 
\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844a7b9c556aef39d165d9226d40a836ee50}{Quarter} =  0x1900
 \}
\begin{DoxyCompactList}\small\item\em Possible angular resolution values that the \hyperlink{namespace_s_i_c_k}{SICK} \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser} can use. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a950a8eca29c4aed4aa59f60621b19f78}{
typedef std::set$<$ \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_1_1_callback}{Laser::Callback} $\ast$ $>$ {\bfseries CallbackSet}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a950a8eca29c4aed4aa59f60621b19f78}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a68465e89283dffcc29a37e94693c6f87}{
\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a68465e89283dffcc29a37e94693c6f87}{Laser} ()}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a68465e89283dffcc29a37e94693c6f87}

\begin{DoxyCompactList}\small\item\em Constructor. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_aa9baee5ed9775426e0b1d563c4687711}{
virtual \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_aa9baee5ed9775426e0b1d563c4687711}{$\sim$Laser} ()}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_aa9baee5ed9775426e0b1d563c4687711}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_messages_1_1_message}{Messages::Message} $\ast$ \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_abb64eff9558b5dc6813f83a4c067463e}{GetMessageFromQueue} ()
\begin{DoxyCompactList}\small\item\em Gets next message from the queue and remove it from the queue. \item\end{DoxyCompactList}\item 
\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_messages_1_1_message}{Messages::Message} $\ast$ \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_ae575e4b9632bb20fc90d1330b8b9dbec}{GetLastMessageReceived} () const 
\begin{DoxyCompactList}\small\item\em Gets a COPY of the last message received from the \hyperlink{namespace_s_i_c_k}{SICK} LIDAR. \item\end{DoxyCompactList}\item 
bool \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a26bcf6b75156a0452567b61ec45e768b}{Transmit} (\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_messages_1_1_message}{Messages::Message} $\ast$message)
\begin{DoxyCompactList}\small\item\em Sends a \hyperlink{namespace_s_i_c_k}{SICK} telegram message. \item\end{DoxyCompactList}\item 
bool \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_ad59a585f9e7720ef11447a6d8ed0e02b}{EstablishConnection} (const std::string \&port=\char`\"{}COM4\char`\"{}, const int baud=460800, const unsigned char id=0x00, const int tries=1)
\begin{DoxyCompactList}\small\item\em Connects to the serial port of the \hyperlink{namespace_s_i_c_k}{SICK} laser. \item\end{DoxyCompactList}\item 
bool \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a8c907eb33b3ea38c230e3168b1f060a7}{Shutdown} ()
\begin{DoxyCompactList}\small\item\em Cleans up the state of the \hyperlink{namespace_s_i_c_k}{SICK} \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser}. \item\end{DoxyCompactList}\item 
bool \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a6c981ab2b88db88f580f3a238a32409b}{RequestContinuousOutput} (const unsigned int timeoutMs=10000)
\begin{DoxyCompactList}\small\item\em Sends a request for the laser to begin sending scanning output messages as soon as they are received. \item\end{DoxyCompactList}\item 
bool \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a92b88536185734966a99d74afd0c17dd}{StopContinuousOutput} (const unsigned int timeoutMs=2500)
\begin{DoxyCompactList}\small\item\em Sends a request to the laser to stop sending continuous output. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a98c18047e1d3e22ea273dc14d218b564}{
bool {\bfseries ChangeBaudRate} (int baud, int cbaud=0)}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a98c18047e1d3e22ea273dc14d218b564}

\item 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a050bac78a15deb32841b53d15fd3bd46}{
bool {\bfseries SetPermanentBaudRate} (bool cur=true)}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a050bac78a15deb32841b53d15fd3bd46}

\item 
bool \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_add4a981ac9d8c887ca89fd435fe7b659}{SetDistanceMode} (\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a3dfc30c8c07c30251772b37c79821f35}{Laser::DistanceModes} mode)
\begin{DoxyCompactList}\small\item\em Sends a request to the laser to change the distance mode. This method may take up to 8 seconds to complete because of response time from sensor. \item\end{DoxyCompactList}\item 
bool \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_ac58216a6e948aa2403c4286ba0bb9aba}{SetScanning} (\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a3f01c225827d657d3d4874b42398a91d}{Laser::ScanningAngle} angle, \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844}{Laser::AngularResolution} resolution)
\begin{DoxyCompactList}\small\item\em Sends a request to the laser to change the scanning angle and the angular resolution. \item\end{DoxyCompactList}\item 
unsigned int \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_ada7b1e4bbc68c054b253a39cbf7fb748}{GetQueueSize} () const 
\begin{DoxyCompactList}\small\item\em Gets the number of messages in the queue. \item\end{DoxyCompactList}\item 
int \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a1405e4473ea3dc3e1eb724719bc02582}{RegisterCallback} (\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_1_1_callback}{Laser::Callback} $\ast$cb)
\begin{DoxyCompactList}\small\item\em Register a callback to be done everytime a message is received. \item\end{DoxyCompactList}\item 
int \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_a54553e42a48fd61ac7f5ad95314f1052}{RemoveCallback} (\hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser_1_1_callback}{Laser::Callback} $\ast$cb)
\begin{DoxyCompactList}\small\item\em Remove a registered callback. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Member Enumeration Documentation}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!AngularResolution@{AngularResolution}}
\index{AngularResolution@{AngularResolution}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{AngularResolution}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf Zebulon::SICK::Laser::AngularResolution}}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844}


Possible angular resolution values that the \hyperlink{namespace_s_i_c_k}{SICK} \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser} can use. \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{One@{One}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!One@{One}}\item[{\em 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844a62bcf09ed5b97062b4c06ca79cf5bebd}{
One}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844a62bcf09ed5b97062b4c06ca79cf5bebd}
}]1 Degree Resolution \index{Half@{Half}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!Half@{Half}}\item[{\em 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844a0a6ab0f554fd97657a551dc1840d8ad3}{
Half}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844a0a6ab0f554fd97657a551dc1840d8ad3}
}]0.5 Degree Resolution \index{Quarter@{Quarter}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!Quarter@{Quarter}}\item[{\em 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844a7b9c556aef39d165d9226d40a836ee50}{
Quarter}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a4b6ff3d2455209948f0894a8140f5844a7b9c556aef39d165d9226d40a836ee50}
}]0.25 Degree Resolution \end{description}
\end{Desc}

\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a3dfc30c8c07c30251772b37c79821f35}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!DistanceModes@{DistanceModes}}
\index{DistanceModes@{DistanceModes}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{DistanceModes}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf Zebulon::SICK::Laser::DistanceModes}}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a3dfc30c8c07c30251772b37c79821f35}


Possible distance mode settings values that the \hyperlink{namespace_s_i_c_k}{SICK} \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser} can use. \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{CM@{CM}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!CM@{CM}}\item[{\em 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a3dfc30c8c07c30251772b37c79821f35ad45871d048871a91fcd57af2fb149aff}{
CM}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a3dfc30c8c07c30251772b37c79821f35ad45871d048871a91fcd57af2fb149aff}
}]Centimeter mode. \index{MM@{MM}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!MM@{MM}}\item[{\em 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a3dfc30c8c07c30251772b37c79821f35ac39043c28c2f4b4a64baf80249a9b720}{
MM}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a3dfc30c8c07c30251772b37c79821f35ac39043c28c2f4b4a64baf80249a9b720}
}]Millimeter mode. \end{description}
\end{Desc}

\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a3f01c225827d657d3d4874b42398a91d}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!ScanningAngle@{ScanningAngle}}
\index{ScanningAngle@{ScanningAngle}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{ScanningAngle}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf Zebulon::SICK::Laser::ScanningAngle}}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a3f01c225827d657d3d4874b42398a91d}


Possible angle values that the \hyperlink{namespace_s_i_c_k}{SICK} \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser} can scan with. \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{OneHundred@{OneHundred}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!OneHundred@{OneHundred}}\item[{\em 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a3f01c225827d657d3d4874b42398a91da3b543aeba39c39159d00b6e5489fbe5a}{
OneHundred}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a3f01c225827d657d3d4874b42398a91da3b543aeba39c39159d00b6e5489fbe5a}
}]100 Degree Sweep \index{OneEighty@{OneEighty}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!OneEighty@{OneEighty}}\item[{\em 
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a3f01c225827d657d3d4874b42398a91da6cfc27e67982cd6b3ef6117a07bd09e0}{
OneEighty}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a3f01c225827d657d3d4874b42398a91da6cfc27e67982cd6b3ef6117a07bd09e0}
}]180 Degree Sweep \end{description}
\end{Desc}



\subsection{Member Function Documentation}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_ad59a585f9e7720ef11447a6d8ed0e02b}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!EstablishConnection@{EstablishConnection}}
\index{EstablishConnection@{EstablishConnection}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{EstablishConnection}]{\setlength{\rightskip}{0pt plus 5cm}bool Laser::EstablishConnection (const std::string \& {\em port} = {\ttfamily \char`\"{}COM4\char`\"{}}, \/  const int {\em baud} = {\ttfamily 460800}, \/  const unsigned char {\em id} = {\ttfamily 0x00}, \/  const int {\em tries} = {\ttfamily 1})}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_ad59a585f9e7720ef11447a6d8ed0e02b}


Connects to the serial port of the \hyperlink{namespace_s_i_c_k}{SICK} laser. This function attempts to connect to the \hyperlink{namespace_s_i_c_k}{SICK} laser over various baud rates If the \hyperlink{namespace_s_i_c_k}{SICK} laser is connected at a standard baud rate of 500K, 38400, 19200 or 9600, it should be detected (in that order). You can also specify a baud rate to try first (if you think you know what baud rate to connect at, trying this one first should speed things along in the initialization)


\begin{DoxyParams}{Parameters}
\item[{\em port}]The port to connect to \item[{\em baud}]The baud rate at which to try to connect to first (then try others) \item[{\em tries}]The number of tries to \char`\"{}ping\char`\"{} the laser and wait for a response (default is 1, try more if you need it)\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 on pass, 0 on fail. 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_ae575e4b9632bb20fc90d1330b8b9dbec}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!GetLastMessageReceived@{GetLastMessageReceived}}
\index{GetLastMessageReceived@{GetLastMessageReceived}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{GetLastMessageReceived}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Message} $\ast$ Laser::GetLastMessageReceived () const}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_ae575e4b9632bb20fc90d1330b8b9dbec}


Gets a COPY of the last message received from the \hyperlink{namespace_s_i_c_k}{SICK} LIDAR. \begin{DoxyReturn}{Returns}
A pointer to the next message in the queue. You must delete this data! 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_abb64eff9558b5dc6813f83a4c067463e}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!GetMessageFromQueue@{GetMessageFromQueue}}
\index{GetMessageFromQueue@{GetMessageFromQueue}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{GetMessageFromQueue}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Message} $\ast$ Laser::GetMessageFromQueue ()}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_abb64eff9558b5dc6813f83a4c067463e}


Gets next message from the queue and remove it from the queue. \begin{DoxyReturn}{Returns}
A pointer to the next message in the queue. You must delete this data! 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_ada7b1e4bbc68c054b253a39cbf7fb748}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!GetQueueSize@{GetQueueSize}}
\index{GetQueueSize@{GetQueueSize}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{GetQueueSize}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int Laser::GetQueueSize () const}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_ada7b1e4bbc68c054b253a39cbf7fb748}


Gets the number of messages in the queue. \begin{DoxyReturn}{Returns}
The number of messages in the queue. 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a1405e4473ea3dc3e1eb724719bc02582}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!RegisterCallback@{RegisterCallback}}
\index{RegisterCallback@{RegisterCallback}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{RegisterCallback}]{\setlength{\rightskip}{0pt plus 5cm}int Laser::RegisterCallback ({\bf Laser::Callback} $\ast$ {\em cb})}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a1405e4473ea3dc3e1eb724719bc02582}


Register a callback to be done everytime a message is received. You can register multiple callbacks if desired.


\begin{DoxyParams}{Parameters}
\item[{\em cb}]\hyperlink{namespace_message}{Message} callback to perform when message is received.\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 on success, 0 on failure. 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a54553e42a48fd61ac7f5ad95314f1052}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!RemoveCallback@{RemoveCallback}}
\index{RemoveCallback@{RemoveCallback}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{RemoveCallback}]{\setlength{\rightskip}{0pt plus 5cm}int Laser::RemoveCallback ({\bf Laser::Callback} $\ast$ {\em cb})}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a54553e42a48fd61ac7f5ad95314f1052}


Remove a registered callback. 
\begin{DoxyParams}{Parameters}
\item[{\em cb}]\hyperlink{namespace_message}{Message} callback pointer.\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 on success, 0 on failure. 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a6c981ab2b88db88f580f3a238a32409b}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!RequestContinuousOutput@{RequestContinuousOutput}}
\index{RequestContinuousOutput@{RequestContinuousOutput}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{RequestContinuousOutput}]{\setlength{\rightskip}{0pt plus 5cm}bool Laser::RequestContinuousOutput (const unsigned int {\em timeoutMs} = {\ttfamily 10000})}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a6c981ab2b88db88f580f3a238a32409b}


Sends a request for the laser to begin sending scanning output messages as soon as they are received. 
\begin{DoxyParams}{Parameters}
\item[{\em timeoutMs}]The amount of time to wait for a continuous output message before returning.\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, false on fail. 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_add4a981ac9d8c887ca89fd435fe7b659}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!SetDistanceMode@{SetDistanceMode}}
\index{SetDistanceMode@{SetDistanceMode}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{SetDistanceMode}]{\setlength{\rightskip}{0pt plus 5cm}bool Laser::SetDistanceMode ({\bf Laser::DistanceModes} {\em mode})}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_add4a981ac9d8c887ca89fd435fe7b659}


Sends a request to the laser to change the distance mode. This method may take up to 8 seconds to complete because of response time from sensor. This method will only work correctly before continuous output is requested.


\begin{DoxyParams}{Parameters}
\item[{\em mode}]The new distance mode that the \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser} will use.\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if the message was sent. false otherwise. 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_ac58216a6e948aa2403c4286ba0bb9aba}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!SetScanning@{SetScanning}}
\index{SetScanning@{SetScanning}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{SetScanning}]{\setlength{\rightskip}{0pt plus 5cm}bool Laser::SetScanning ({\bf Laser::ScanningAngle} {\em angle}, \/  {\bf Laser::AngularResolution} {\em resolution})}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_ac58216a6e948aa2403c4286ba0bb9aba}


Sends a request to the laser to change the scanning angle and the angular resolution. This method will only work correctly before continuous output is requested.


\begin{DoxyParams}{Parameters}
\item[{\em angle}]The new scanning angle that the \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser} will use. \item[{\em resolution}]The new angular resolution that the \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser} will use.\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if the message was sent. false otherwise. 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a8c907eb33b3ea38c230e3168b1f060a7}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!Shutdown@{Shutdown}}
\index{Shutdown@{Shutdown}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{Shutdown}]{\setlength{\rightskip}{0pt plus 5cm}bool Laser::Shutdown ()}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a8c907eb33b3ea38c230e3168b1f060a7}


Cleans up the state of the \hyperlink{namespace_s_i_c_k}{SICK} \hyperlink{class_zebulon_1_1_s_i_c_k_1_1_laser}{Laser}. This function sends a command to the laser so it stops sending continuous output messages. It also stops the message listener thread and clears/frees the messages in the message queue.

\begin{DoxyReturn}{Returns}
true on pass. Currently never fails... 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a92b88536185734966a99d74afd0c17dd}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!StopContinuousOutput@{StopContinuousOutput}}
\index{StopContinuousOutput@{StopContinuousOutput}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{StopContinuousOutput}]{\setlength{\rightskip}{0pt plus 5cm}bool Laser::StopContinuousOutput (const unsigned int {\em timeoutMs} = {\ttfamily 2500})}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a92b88536185734966a99d74afd0c17dd}


Sends a request to the laser to stop sending continuous output. 
\begin{DoxyParams}{Parameters}
\item[{\em timeoutMs}]How long to wait in milliseconds before timeout waiting for LMS2xx response.\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if the message was sent. false otherwise. 
\end{DoxyReturn}
\hypertarget{class_zebulon_1_1_s_i_c_k_1_1_laser_a26bcf6b75156a0452567b61ec45e768b}{
\index{Zebulon::SICK::Laser@{Zebulon::SICK::Laser}!Transmit@{Transmit}}
\index{Transmit@{Transmit}!Zebulon::SICK::Laser@{Zebulon::SICK::Laser}}
\subsubsection[{Transmit}]{\setlength{\rightskip}{0pt plus 5cm}bool Laser::Transmit ({\bf Messages::Message} $\ast$ {\em msg})}}
\label{class_zebulon_1_1_s_i_c_k_1_1_laser_a26bcf6b75156a0452567b61ec45e768b}


Sends a \hyperlink{namespace_s_i_c_k}{SICK} telegram message. 
\begin{DoxyParams}{Parameters}
\item[{\em msg}]The message to send to the \hyperlink{namespace_s_i_c_k}{SICK} laser.\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, false on fail. 
\end{DoxyReturn}


The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
C:/Users/Matt/Documents/School/Robotics/zebulon/v2/sick/include/sick/\hyperlink{laser_8h}{laser.h}\item 
C:/Users/Matt/Documents/School/Robotics/zebulon/v2/sick/src/sick/\hyperlink{laser_8cpp}{laser.cpp}\end{DoxyCompactItemize}
